导航菜单
首页 >  Python包的依赖管理有解了  > 再见pip & conda!管理Python依赖关系的更好的选择:Poetry

再见pip & conda!管理Python依赖关系的更好的选择:Poetry

在你的数据科学项目的开始阶段,使用pip或conda等依赖性管理工具可能就足够了。

然而,随着项目的扩大,依赖关系的数量也在增加。这可能会使项目的环境难以重现,并且在仅仅依靠pip或conda进行依赖性管理时难以有效地维护它。

此时 Poetry 应运而生,它是一个开源库,提供了一个强大的工具来创建和维护具有一致环境的Python项目。在这篇文章中,我们将深入探讨Poetry的优势,并强调它与pip和conda的主要区别。

安装的便利性

一键轻松安装过程,能够快速采用并将软件包集成到我们的代码库中,从而节省时间和精力。

Conda

Conda的安装格式对于不同的软件包是不一致的。例如,要安装polars,你需要运行:

代码语言:javascript复制conda install -c conda-forge polar

而要安装pandas,命令是:

代码语言:javascript复制conda install -c anaconda pandasPip

Pip对每个软件包都有一致的安装格式:

代码语言:javascript复制pip install package-namePoetry

Poetry也都遵循相同的安装格式:

代码语言:javascript复制poetry add package-name可用的packages

软件包选择空间大,使得找到最适合需求的特定软件包和版本更容易。

Conda

有些软件包,如 "snscrape",不能通过conda安装。此外,某些版本,如Pandas 2.0,可能无法通过Conda安装。

虽然可以在conda的虚拟环境中使用pip来解决软件包的限制,但conda不能跟踪用pip安装的依赖关系。

代码语言:javascript复制$ conda list# packages in environment at /Users/khuyentran/miniconda3/envs/test-conda:## NameVersionBuild ChannelPip

Pip可以安装来自Python Package Index (PyPI)和其他存储库的任何软件包。

Poetry

Poetry还可以安装来自Python Package Index (PyPI)和其他存储库的软件包。

依赖关系的数量

减少环境中的依赖性,可以简化开发过程。

Conda

Conda提供完全的环境隔离,同时管理Python软件包和系统级的依赖关系。与其他软件包管理器相比,这可能会导致软件包太大,在安装和分发时可能会消耗

相关推荐: